import axios from "axios"
import router from "../router"
import el from 'element-ui';
let http = axios.create({ //定义字段
        //baseURL: "/api", //基础地址
        timeout: 1000 * 10, //超时设置
        withCredentials: true //是否携带凭证进行数据交互
    })
    /* 拦截的目的就是给每一个请求添加相同的请求头 */
http.interceptors.request.use(config => {
    let token = localStorage.getItem('lp-token')
        //登入和获取验证码不加请求头
    let pathList = ['/users/getCaptcha', "/users/login"]
        // 拦截下来的求情去判断 不是这两个 就可以携带了
    let result = pathList.some(item => item == config.url)
        //console.log(result); 
    if (!result) {
        config.headers.authorization = token;
    }

    return config
})

//拦截响应 token消炎失败的原因 token失效了 token消炎失败
//当token校验失败 就跳转到登录页
http.interceptors.response.use(config => {
    //如果相应数据中 code===1004或者10022的时候就是过期


    if (config.data.code === "1004" || config.data.code === "10022") {
        router.push("/login")
        localStorage.removeItem('lp-token')
        window.location.reload()
        el.Message.error('你的账号已过期,请重新登录')
    }


    return config

})
export default http;